﻿using System;
using System.Collections.Generic;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WLMCoreLibrary;
using MiWebSite_Core;

namespace MWS_AddDirectory.handlers.cupones
{
    public partial class _default : System.Web.UI.Page
    {
        WebSiteMainConfiguration config = WebSiteMainConfiguration.GetConfig();
        dbConnector ConexionDB;


        protected void Page_Load(object sender, EventArgs e)
        {
            ManageCoupon();
        }

        protected void ManageCoupon()
        {
            if (Request["idCupon"] != null)
            {
                if (Request["add"] != null)
                    AddEdit(Convert.ToInt32(Request["idCupon"]));
                if (Request["get"] != null)
                    GetCuponInfo(Convert.ToInt32(Request["idCupon"]));
            }
            else
            {
                if (Request["idAnuncio"] != null && Request["list"] != null)
                    GetAddCupons(Convert.ToInt32(Request["idAnuncio"]));
            }

        }

        protected void AddEdit(int idCupon)
        {
            Cupon cupon = new Cupon();
            ConexionDB = new dbConnector(config.Connections[0].value);
            try
            {
                if (CurrentClient.Id != 0)
                {
                    if (idCupon != 0)
                    {
                        cupon = new Cupon(idCupon, ref ConexionDB);
                        if (CurrentClient.Id != cupon.idCliente)
                            cupon = new Cupon(ref ConexionDB);
                    }
                    else
                        cupon = new Cupon(ref ConexionDB);


                    cupon.nombre = Request["titulo"];
                    cupon.texto = Request["descripcion"];
                    cupon.descripcion = Request["descripcion"];
                    cupon.idAnuncio = Convert.ToInt32(Request["idAnuncio"]);
                    cupon.idCliente = CurrentClient.Id;
                    cupon.fechaActivacion = Convert.ToDateTime(Request["fechaActivacion"]);
                    cupon.fechaVencimiento = Convert.ToDateTime(Request["fechaVencimiento"]);
                    cupon.Save();
                    Anuncio anuncio = new Anuncio(cupon.idAnuncio, ref ConexionDB);
                    //if (!HttpContext.Current.IsDebuggingEnabled)
                    if (cupon.fechaActivacion < DateTime.Now && cupon.fechaVencimiento > DateTime.Now)
                        if (DeCurrentDomain.oauth_token != "")
                        {
                            Twitter tw = new Twitter();
                            string shorURL = Bitly.Shortener(anuncio.FullURL);
                            AnuncioFrases frase = new AnuncioFrases(2, true, ref ConexionDB);
                            if (frase.id != 0)
                                tw.Update(frase.frase.Replace("{CIUDAD}", DeCurrentDomain.Ciudad).Replace("{CATEGORIA}", anuncio.Categorias[0].nombreCategoria).Replace("{ANUNCIANTE}", anuncio.nombre).Replace("{LINK}", shorURL).Replace("{NOMBRECUPON}", cupon.nombre).Replace("{VALIDO}", cupon.fechaVencimiento.ToString("dd/MM/yy")));
                        }
                }
            }
            catch (Exception ex)
            {
                // Response.Write(ex.Message + ex.StackTrace);
            }
            finally
            {
                Response.ContentType = "text/xml";
                ConexionDB.CloseConnection();
                Response.Write(WLMFunctions.SerializeObject(cupon, true));
                
                Response.End();
            }
        }

        protected void GetCuponInfo(int idCupon)
        {
            Cupon cupon = new Cupon();
            ConexionDB = new dbConnector(config.Connections[0].value);
            if (idCupon != 0)
                cupon = new Cupon(idCupon, ref ConexionDB);
            ConexionDB.CloseConnection();
            Response.ContentType = "text/xml";
            Response.Write(WLMFunctions.SerializeObject(cupon, true));
            
            Response.End();
        }

        protected void GetAddCupons(int idAnuncio)
        {
            ConexionDB = new dbConnector(config.Connections[0].value);           
            CuponCollection cupones = new CuponCollection(new Anuncio(idAnuncio,ref ConexionDB),ref ConexionDB);
            ConexionDB.CloseConnection();
            Response.ContentType = "text/xml";
            Response.Write(WLMFunctions.SerializeObject(cupones, true));            
            Response.End();
        }
    }
}